package cm.tl.pms.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 字符串转换
 *
 * @author w7h1te_ywq
 * @version 1.0.0
 * @date 2023-11-08 13:38
 */
public class StringUtil {
    public static final Logger logger = LoggerFactory.getLogger(StringUtil.class.getName());

    public static String switchString(String hexadecimalString) {
//        String hexadecimalString = "0x1d31"; // 16进制的String类型字符串
        hexadecimalString = hexadecimalString.replace("0x", ""); // 去除前缀"0x"
        int decimalValue = Integer.parseInt(hexadecimalString, 16); // 转换为10进制
        String decimalString = String.valueOf(decimalValue); // 转换为十进制字符串
        logger.info("对应的10进制字符串为：" + decimalString);
        return decimalString;

    }

    /**
     * 16进制的带前缀"0x"的字符串 __转换yyyy-MM-dd HH:mm:ss格式
     *
     * @param timestampString
     * @return
     */
    public static String switchTimestampString(String timestampString) {
//        String timestampString = "1630452000"; // 十进制的字符串时间戳
//        long timestamp = Long.parseLong(timestampString);
//        java.util.Date date = new java.util.Date(timestamp * 1000L);
//        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String formattedDate = sdf.format(date);
        //方式二
//        String hexadecimalString = "0x18b99f63acc"; // 16进制的带前缀"0x"的字符串
        timestampString = timestampString.replace("0x", ""); // 去除前缀"0x"
        long decimalValue = Long.parseLong(timestampString, 16); // 转换为10进制
        java.util.Date date = new java.util.Date(decimalValue);
        java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(date);
        logger.info("转换后的时间为：" + formattedDate);
        return formattedDate;
    }

}
